From f604e211c7cd3e0261d847a8f989a43f9b32d00e Mon Sep 17 00:00:00 2001 From: Matthias Clasen Date: Fri, 29 Oct 2004 05:14:00 +0000 Subject: [PATCH] Don't hardwire the supported text targets here, use 2004-10-29 Matthias Clasen * gtk/gtkclipboard.c (gtk_clipboard_set_text): Don't hardwire the supported text targets here, use gtk_target_list_add_text_targets(). (#156404) --- ChangeLog | 4 ++++ ChangeLog.pre-2-10 | 4 ++++ ChangeLog.pre-2-6 | 4 ++++ ChangeLog.pre-2-8 | 4 ++++ gtk/gtkclipboard.c | 30 ++++++++++++++++++++++-------- 5 files changed, 38 insertions(+), 8 deletions(-) diff --git a/ChangeLog b/ChangeLog index c95b077eb6..25cf5d8d4a 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,5 +1,9 @@ 2004-10-29 Matthias Clasen + * gtk/gtkclipboard.c (gtk_clipboard_set_text): Don't hardwire + the supported text targets here, use + gtk_target_list_add_text_targets(). (#156404) + * gtk/gtkliststore.c (gtk_list_store_reorder): Don't loop over the sentinel node. (#156298, Torsten Schoenfeld) diff --git a/ChangeLog.pre-2-10 b/ChangeLog.pre-2-10 index c95b077eb6..25cf5d8d4a 100644 --- a/ChangeLog.pre-2-10 +++ b/ChangeLog.pre-2-10 @@ -1,5 +1,9 @@ 2004-10-29 Matthias Clasen + * gtk/gtkclipboard.c (gtk_clipboard_set_text): Don't hardwire + the supported text targets here, use + gtk_target_list_add_text_targets(). (#156404) + * gtk/gtkliststore.c (gtk_list_store_reorder): Don't loop over the sentinel node. (#156298, Torsten Schoenfeld) diff --git a/ChangeLog.pre-2-6 b/ChangeLog.pre-2-6 index c95b077eb6..25cf5d8d4a 100644 --- a/ChangeLog.pre-2-6 +++ b/ChangeLog.pre-2-6 @@ -1,5 +1,9 @@ 2004-10-29 Matthias Clasen + * gtk/gtkclipboard.c (gtk_clipboard_set_text): Don't hardwire + the supported text targets here, use + gtk_target_list_add_text_targets(). (#156404) + * gtk/gtkliststore.c (gtk_list_store_reorder): Don't loop over the sentinel node. (#156298, Torsten Schoenfeld) diff --git a/ChangeLog.pre-2-8 b/ChangeLog.pre-2-8 index c95b077eb6..25cf5d8d4a 100644 --- a/ChangeLog.pre-2-8 +++ b/ChangeLog.pre-2-8 @@ -1,5 +1,9 @@ 2004-10-29 Matthias Clasen + * gtk/gtkclipboard.c (gtk_clipboard_set_text): Don't hardwire + the supported text targets here, use + gtk_target_list_add_text_targets(). (#156404) + * gtk/gtkliststore.c (gtk_list_store_reorder): Don't loop over the sentinel node. (#156298, Torsten Schoenfeld) diff --git a/gtk/gtkclipboard.c b/gtk/gtkclipboard.c index ce3dbba6a6..cc78e1f847 100644 --- a/gtk/gtkclipboard.c +++ b/gtk/gtkclipboard.c @@ -719,24 +719,38 @@ gtk_clipboard_set_text (GtkClipboard *clipboard, const gchar *text, gint len) { - static const GtkTargetEntry targets[] = { - { "STRING", 0, TARGET_STRING }, - { "TEXT", 0, TARGET_TEXT }, - { "COMPOUND_TEXT", 0, TARGET_COMPOUND_TEXT }, - { "UTF8_STRING", 0, TARGET_UTF8_STRING } - }; + GtkTargetList *list; + GList *l; + GtkTargetEntry *targets; + gint n_targets, i; g_return_if_fail (clipboard != NULL); g_return_if_fail (text != NULL); - + + list = gtk_target_list_new (NULL, 0); + gtk_target_list_add_text_targets (list, 0); + + n_targets = g_list_length (list->list); + targets = g_new (GtkTargetEntry, n_targets); + for (l = list->list, i = 0; l; l = l->next, i++) + { + GtkTargetPair *pair = (GtkTargetPair *)l->data; + targets[i].target = gdk_atom_name (pair->target); + targets[i].flags = 0; + targets[i].info = 0; + } + if (len < 0) len = strlen (text); gtk_clipboard_set_with_data (clipboard, - targets, G_N_ELEMENTS (targets), + targets, n_targets, text_get_func, text_clear_func, g_strndup (text, len)); gtk_clipboard_set_can_store (clipboard, NULL, 0); + + g_free (targets); + gtk_target_list_unref (list); } static void -- 2.30.2